Makerfarm to Wilson X-Carriage Adapter Take II
[clinton/3d-models.git] / carriage adapter / itty-wilson.scad
CommitLineData
f9a12374
CE
1/*
2min y = 0
3max y = 100
4min x = 1205
5max x = 1254
6
7Makerfair X carriage plate adapter for the Wilson RepRap.
8Copyright (c) 2015 Clinton Ebadi <clinton@unknownlamer.org>
9
10 This program is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
22
23Measurements reverse engineered from
24https://github.com/RickSisco/MakerFarm-Prusa-i3v-12-Inch
25
26Intended for use with the itty bitty dual extruder series.
27
28Source needs a good cleanup. Evil loops that don't take advantage of
29the geometry of the object abound.
30
31*/
32
33use <MCAD/nuts_and_bolts.scad>
34
35carriage_height = 65;
84a5e569 36carriage_width = 50;
f9a12374
CE
37
38plate_width = 75; // wilson carriage is only 50mm wide!
84a5e569
CE
39plate_depth = 6; // wilson default depth = 8, makerfarm = 6
40
41hole_tolerance = 0.25; // widen holes a bit, may still need to drill out
f9a12374
CE
42
43plate_cut_height = 6.5;
44plate_cut_width = 6;
45plate_cut_distance = 13;
46plate_cut_center = 25.1;
47plate_cut_y_offset = 27;
84a5e569 48plate_cut_bolt = 3 + hole_tolerance;
f9a12374
CE
49plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2;
50
84a5e569
CE
51plate_extra_height = 3; // make plate a bit taller so it is structurally sound
52
53plate_height = plate_cut_height + plate_cut_y_offset + plate_extra_height;
f9a12374
CE
54
55lower_cut_y_offset = 5.33; // 5.325 in CAD
56lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2;
57lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2;
58
84a5e569 59carriage_bolt = 4 + hole_tolerance;
f9a12374
CE
60carriage_hole_spacing = 24;
61carriage_clearance = 20; // holes are 20mm from bottom of plate
62carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance;
84a5e569 63carriage_nut_depth = 3.2 + 3.2/2 + 0.1; // m4 nut depth + half of an m4 nut + tolerance
f9a12374
CE
64
65corner_radius = 3; // round off the corners to make it look nicer
66
84a5e569
CE
67shelf_mount ();
68translate ([(plate_width - carriage_width) / 2, plate_height - plate_extra_height, 0]) carriage_mount ();
69
70// mount to wilson x-carriage
71module carriage_mount () {
72 difference () {
73 linear_extrude (height = plate_depth, convexity = 8) {
74 // outline of plate + bolt holes
75 difference () {
76 translate ([corner_radius, corner_radius, 0]) {
77 minkowski () {
78 square ([carriage_width - corner_radius*2, carriage_height - corner_radius]);
79 circle (r = corner_radius);
80 }
81 }
f9a12374 82
84a5e569
CE
83 #translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, 0])
84 for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
85 translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16);
86 }
f9a12374 87 }
f9a12374 88 }
84a5e569
CE
89 // after extruding, cut out spaces for M4 hex nuts.
90 translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, plate_depth - carriage_nut_depth]) {
f9a12374 91 for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
84a5e569 92 translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1);
f9a12374 93 }
f9a12374
CE
94 }
95 }
96}
97
84a5e569
CE
98// mount for makerfarm extruder shelf
99module shelf_mount () {
100 linear_extrude (height = plate_depth, convexity = 8) {
101 difference () {
102 translate ([corner_radius, corner_radius, 0]) {
103 minkowski () {
104 square ([plate_width - corner_radius*2, plate_height - corner_radius*2]);
105 circle (r = corner_radius);
106 }
107 }
f9a12374 108
84a5e569
CE
109 // upper shelf mount
110 translate ([0, plate_cut_y_offset, 0]) {
111 for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01])
112 translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]);
113
114 // looks like the bolt is at the midpoint between the cut outs
115 for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset])
116 translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt + hole_tolerance, $fn = 16);
117 }
118
119 // lower shelf mount
120 translate ([0, lower_cut_y_offset, 0]) {
121 for (x = [-0.01, plate_width - plate_cut_width + 0.01]) {
122 // lower cut out is closer to 6mm than 6.5mm in cad drawings
123 translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]);
124 }
125 // I think the intention is for the screw holes to be centered over the cut out
126 for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset])
127 translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt + hole_tolerance, $fn = 16);
f9a12374
CE
128 }
129 }
130 }
131}